The present invention relates to portable computing devices. More specifically, the present invention relates to a system and methods for timing synchronization in an MEMS (MicroElectroMechanical system) based system including a plurality of MEMS based device.
Currently, more and more portable computing devices are becoming available to the average user/consumer. Such devices may include reader-type devices (e.g. Kindle, Nook), tablet-type devices (e.g. iPad, GalaxyTab), phone-type devices (e.g. iPhone, GalaxyS2), or the like. Many of these devices now include specialized hardware (e.g. MEMS devices) that can sense physical properties or physical inputs to the device. Such specialized hardware typically includes 3-axis accelerometers, a gyroscope, and a compass that are provided on separate electronic packages.
In today's wireless handset market inertial applications such as gesture recognition, haptics, and indoor navigation have become mainstays. All of these types of applications are dependent on MEMS devices, namely the gyroscope, magnetometer, and accelerometer, etc. These devices are interfaced to by the handset's MEMS Processor (if one is provided) or by the Host itself. The inventors of this invention have observed, whether these MEMS devices are independently distributed or packaged together as one combo unit, that clock uncertainty and clock drift vs. that of the MEMS Processor or Host is a concern. Further, many of the MEMS devices in the market today count on an internal RC oscillator circuit to generate its sample clock and time tag its samples. The absolute accuracy of an RC oscillator can be as poor as +/−40% while the drift can be as large as 100 PPM per second.
The uncertainty associated with the MEMS clock source translates directly to sample rate uncertainty for the end user (i.e. inertial applications). Add to this that the fact that the MEMS Processor or Host has no accurate way to correlate the sample times of the individual MEMS devices against each other or even the Host's local (presumably more accurate) clock.
During integration of sensor data, it quickly became apparent to the inventors of this invention that the sample time uncertainty of the individual MEMS devices was a big issue. This is especially true for indoor navigation and pedestrian dead-reckoning both of which require MEMS sample rates approaching 100 Hz on multiple sensors. One blatantly obvious impact is on filter of this data. If the sample rate is uncertain, the filter bandwidths must be wider thus impacting performance. Another major issue is misalignment of data from distributed sensors. For instance it is very difficult to add tilt-compensation to an eCompass application if the magnetometer and accelerometer data is misaligned. Misaligned data can do more damage than good.
Another commonly used method to “synchronize” individual MEMS devices is via a shared clock. In this method the Host and all of the MEMS devices are tied to the same clock source, thus their clocks are always identical in frequency and phase. The inventors of the present invention have noticed that the draw backs with this technique include additional power consumption due to the distributed clock (much higher clock rate than the MEMS sample frequency) and a lack of sample synchronization across devices as there is still no known relative start time.
In light of the above, what is desired are methods and apparatus that address the issues described above.